package com.linkhub.oms.common.util;

import java.util.UUID;
import java.security.SecureRandom;
import java.util.Base64;
/**
 * @ClassName TokenGenerator
 * @Description: com.linkhub.oms.common.util
 * @Author: Jaycle
 * @CreateDate: 2025/5/26 16:12
 * @Version: 1.0
 */

public class TokenGenerator {

    // 方法1：使用 UUID + 时间戳 + 随机数，确保全局唯一
    public static String generateUniqueToken() {
        String uuid = UUID.randomUUID().toString().replace("-", "");
        long timestamp = System.currentTimeMillis();
        SecureRandom random = new SecureRandom();
        int randomInt = random.nextInt(999999);

        return uuid + timestamp + String.format("%06d", randomInt);
    }

    // 方法2：生成一个短一些的 base64 token（非 URL 安全）
    public static String generateShortToken() {
        byte[] randomBytes = new byte[24];
        new SecureRandom().nextBytes(randomBytes);
        return Base64.getEncoder().encodeToString(randomBytes);
    }

    public static void main(String[] args) {
        System.out.println("Unique Token: " + generateUniqueToken());
        System.out.println("Short Token: " + generateShortToken());
    }
}
